package com.common.log;

import java.lang.annotation.*;

/**
 * 定义操作日志注解，用于Controller.
 * @since 2022-01
 * @author Clay
 * @see OperationAspect
 * @version 1.0
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface OperationLog {

    /**
     * 操作类型 {@link OperationType}
     * @return
     */
    OperationType operationType();

    /**
     * 操作描述
     * @return
     */
    String describe();

    /**
     * 所操作的实体
     * @return
     */
    Class<?> entity();

    /**
     * 所操作实体的主键
     * @return
     */
    String primaryKey();
}
